#!/usr/bin/env bun

/**
 * 测试PPT模板图表功能
 */

import { JsonToPptConverter } from '../../../../src/tools/convert/ppt/json-to-ppt.js';
import { resolve } from 'path';

async function testPptCharts() {
  console.log('🧪 测试PPT模板图表功能');
  console.log('='.repeat(50));

  try {
    // 准备测试数据
    const testData = [
      {
        year: '2024',
        nextYear: '2025',
        presenter: '张三',
        department: '技术研发部',
        date: '2024年12月',
        subtitle: '年终总结与成果展示',
        
        // 内容相关数据
        contents: [
          '年度目标达成情况',
          '核心项目成果',
          '关键数据指标',
          '技术栈与项目分析', // 新增的图表页
          '性能优化成果',    // 新增的图表页
          '挑战与突破',
          '能力成长与学习',
          '2025年规划与展望'
        ],
        
        goals_overview: '2024年度我们设定了多个技术目标，通过团队的共同努力，在技术创新、系统优化、团队建设等方面均取得了显著成果。',
        goals_list: [
          '✅ 完成微服务架构升级，系统性能提升40%',
          '✅ 实施DevOps流程，部署效率提升60%',
          '✅ 建立完善的监控体系，系统稳定性达99.9%',
          '🔄 推进AI技术应用，智能化程度提升30%'
        ],
        
        projectName: '智能数据平台',
        project_desc: '基于云原生架构的智能数据处理平台，支持海量数据实时分析和机器学习模型训练，为业务决策提供数据支撑。',
        tech_stack: [
          'Kubernetes + Docker',
          'React + TypeScript',
          'Node.js + Python',
          'Redis + PostgreSQL',
          'Kafka + Elasticsearch'
        ],
        achievements: [
          '💡 处理能力：支持每秒10万条数据处理',
          '⚡ 响应速度：查询响应时间缩短至50ms以内', 
          '🔒 安全性：通过SOC2 Type II合规认证',
          '📊 用户体验：用户满意度提升至92%'
        ],
        
        // 图表数据
        performance_chart: [
          { name: '响应时间', labels: ['Q1', 'Q2', 'Q3', 'Q4'], values: [120, 95, 78, 65] },
          { name: 'CPU使用率', labels: ['Q1', 'Q2', 'Q3', 'Q4'], values: [78, 65, 58, 52] }
        ],
        
        // 技术栈分布数据 (饼图)
        tech_distribution: {
          labels: ['Frontend', 'Backend', 'Database', 'DevOps', 'AI/ML'],
          values: [25, 30, 15, 20, 10]
        },
        
        // 项目进展时间线数据 (折线图)
        project_timeline: {
          series: [
            {
              name: '完成任务数',
              labels: ['1月', '2月', '3月', '4月', '5月', '6月'],
              values: [8, 12, 15, 18, 22, 28]
            },
            {
              name: '新增功能数',
              labels: ['1月', '2月', '3月', '4月', '5月', '6月'],
              values: [3, 5, 7, 6, 8, 12]
            }
          ]
        },
        
        // 性能趋势数据 (面积图)
        performance_trend: {
          series: [
            {
              name: '平均响应时间(ms)',
              labels: ['1月', '2月', '3月', '4月', '5月', '6月'],
              values: [120, 110, 95, 85, 70, 65]
            },
            {
              name: '并发用户数',
              labels: ['1月', '2月', '3月', '4月', '5月', '6月'],
              values: [500, 650, 800, 950, 1200, 1500]
            }
          ]
        },
        
        optimization_summary: '通过系统架构优化和代码重构，系统性能得到显著提升：响应时间减少46%，并发处理能力提升3倍，为用户提供了更流畅的体验。',
        
        metrics_table: [
          ['指标', 'Q1', 'Q2', 'Q3', 'Q4', '年度目标', '完成率'],
          ['代码提交数', '250', '320', '480', '650', '1500', '112%'],
          ['Bug修复数', '45', '65', '78', '92', '280', '100%'],
          ['新功能发布', '8', '12', '15', '18', '50', '106%'],
          ['测试覆盖率', '75%', '82%', '88%', '92%', '85%', '108%']
        ],
        
        metrics_summary: '各项核心指标均超额完成年度目标，体现了团队的高效执行力和技术能力的持续提升。',
        
        challenges_intro: '在项目推进过程中，我们遇到了技术、流程和团队协作等多方面的挑战，通过分析和改进，成功克服了这些困难：',
        challenges_table: [
          ['挑战', '影响程度', '解决方案', '效果评估'],
          ['遗留系统兼容', '高', '设计适配层和数据迁移工具', '完全解决'],
          ['高并发处理', '高', '引入消息队列和缓存机制', '性能提升40%'],
          ['团队技术栈差异', '中', '组织内部培训和技术分享', '技能水平显著提升'],
          ['部署流程复杂', '中', '实施CI/CD自动化流程', '部署时间缩短60%']
        ],
        
        skills_growth: [
          '🚀 云原生技术栈：深入学习Kubernetes和微服务架构',
          '📊 数据科学：掌握机器学习算法和数据分析技能',
          '🔧 DevOps实践：建立完整的CI/CD流水线',
          '👥 团队协作：提升跨团队沟通和项目管理能力'
        ],
        
        certifications: [
          '🏆 AWS Certified Solutions Architect',
          '📜 Kubernetes Administrator (CKA)',
          '🎯 Google Cloud Professional Data Engineer',
          '⚡ Scrum Master认证'
        ],
        
        next_goals: [
          '🎯 技术创新：探索AI技术在业务场景中的应用',
          '📈 性能优化：继续提升系统性能和用户体验',
          '🌐 技术架构：推进云原生架构的深度应用',
          '👨‍💻 团队建设：培养更多技术专家和团队leader',
          '🔄 流程优化：完善开发流程和质量保证体系'
        ],
        
        roadmap: [
          ['时间', '重点任务', '预期成果'],
          ['Q1', 'AI算法集成和性能调优', '智能化程度提升50%'],
          ['Q2', '新一代架构设计和原型开发', '系统扩展性增强'],
          ['Q3', '团队技能提升和知识沉淀', '团队技术能力全面提升'],
          ['Q4', '成果总结和经验推广', '形成最佳实践指南']
        ]
      }
    ];

    const converter = new JsonToPptConverter();
    const outputPath = resolve('/Users/ahata/Downloads/tech-report-with-charts.pptx');
    
    console.log('📊 生成包含图表的技术述职报告PPT...');
    
    const result = await converter.generateFromTemplate({
      templateName: 'year-end-tech',
      data: testData,
      outputPath: outputPath,
      options: {
        author: '张三',
        title: '2024年度技术述职报告',
        theme: 'modern',
        size: 'widescreen',
        includePageNumbers: true
      }
    });

    if (result.success) {
      console.log('\n✅ PPT生成成功！');
      console.log(`📁 文件位置: ${result.outputPath}`);
      console.log(`📄 幻灯片数量: ${result.slideCount}`);
      console.log(`📦 文件大小: ${Math.round(result.size / 1024)}KB`);
      
      console.log('\n🎨 模板特色:');
      console.log('   ✨ 深色科技风主题');
      console.log('   📊 多种类型的数据图表');
      console.log('   📈 柱状图、饼图、折线图、面积图');
      console.log('   🎯 专业的商务演示风格');
      console.log('   📐 16:9宽屏格式');
      
      console.log('\n📊 包含图表页面:');
      console.log('   • 关键数据指标 - 带柱状图');
      console.log('   • 技术栈与项目分析 - 饼图 + 折线图');
      console.log('   • 性能优化成果 - 面积图');
      
    } else {
      console.error('❌ PPT生成失败:', result.message);
    }

  } catch (error) {
    console.error('❌ 测试失败:', error);
  }
}

if (import.meta.main) {
  testPptCharts();
}
